【Lua基础系列】之类型与值(nil,number,boolean)详细版 您所在的位置:网站首页 lua 转字符串 【Lua基础系列】之类型与值(nil,number,boolean)详细版

【Lua基础系列】之类型与值(nil,number,boolean)详细版

#【Lua基础系列】之类型与值(nil,number,boolean)详细版| 来源: 网络整理| 查看: 265

                        【Lua基础系列】之类型与值详细版

       大家好,我是Lampard~~

       为了方便自己的学习以及分享学到的内容,所以我即将要开设Lua基础系列的博客

       PS:本博客知识参考资料为:《Lua程序设计第四版》,该书由Lua的创始人2018年所编著,所以大家可以放心去吸收知识

 

     话不多说,开始第一讲的内容:Lua的类型与值

       Lua作为在语言中不需要类型定义,而是通过赋值带给变量其自身的类型信息。

       在Lua中有8种基本类型,分别是:nil--空,boolean--布尔,number--数值,string--字符串,userdata--用户数据,function--函数,thread--线程,和table--表。我们可以通过调用print(type(变量))来查看变量的数据类型。

      lua1

 

      接下来我们要对nil,Boolean,number进行详细分析。     

    (1) nil

      nil是一种只有一个nil值的类型,它的主要作用是与其他所有值进行区分。Lua语言使用nil值来表示没有有用的值的情况。全局变量第一次被赋值前的默认值就是nil,将nil赋值给全局变量相当于将其删除。

        (2) Boolean

      Boolean类型具有两个值,true和false,他们分别代表了传统的布尔值。不过在Lua中,任何值都能表示条件:Lua定义除了false和nil的值为假之外,所有的值都为真,包括0和空字符串。

     逻辑运算符:and,or,not

     Lua的逻辑运算中,把Boolean类型里面的nil和false当做假,把其他值当做真。

     and和or都遵循着短路求值。

   

   对于and来说,如果第一个值为假,则返回第一个值,否则返回第二个值

 1

     对于or来说,如果第一个值为真,则返回第一个值,否则返回第二个值

2

     对于not来说,返回值永远为Boolean

   3

 

  (3)number

    在Lua5.2之前所有的数值都是双精度的浮点型,在Lua5.3之后引入了整形integer。整形的引入是Lua5.3的一个重要标志。

    整形与浮点型的区别:

    整形:类似1,2,3,4,5.....在其身后不带小数和指数

    浮点型:类似1.2,3.5555,4.57e-3......在其身后带小数点以及指数符号(e)的数字

    我们使用type(3) 和type(3.5)返回的都是num

    但是如果我们调用math库里面的math.type(3)返回的是integer

                                                        math.type(3.5)返回的是float

 

  除了加减乘除之外,Lua语言还提供了向下取整除法(floor除法),取模和指数运算

   对于加+,减-,乘*来说:

   int对int型进行运算,则得到的结果都是int型,但只要两个数字中有一个是float型,则得出来的结果都是float型

4

  对于除/来说:

无论是什么操作,得到的结果永远都是float

5

  float除法//:

  得到的是一个整值,若结果存在小数,则向负无穷截断

 6

   产生随机数(math.random()):

   Lua中产生随机数的三种方式:

  (1)math.random()-- 产生(0~1)的随机值

  (2)math.random(n)-- 产生(1~n)的随机值

  (3)math.random(m,n)-- 产生(m~n)的随机值

 

number类型的取整以及强制转换

   number类型的取整,返回结果为整形值:

  (1)floor()--向负无穷取整

floor(1.5)=1

  (2)ceil() -- 向正无穷取整

ceil(1.5)=2

  (3)modf()--向0取整

modf(1.5)=1 modf(-1.5)=-1

  (4)floor(x+0.5)--四舍五入

  

  number数值类型的强制转换:

  整数类型转化成浮点型:+0.0

  浮点类型转化成整形:math.tointeger()

 

  表示范围:

  最大值math.maxinteger和最小值math.mininteger

  lua中int型和float型都是使用8个字节来存储的,所以他们有最大值和最小值存在。

 当对int最大值加整数1时,会发生回滚,如:

 math.maxinteger+1=math.mininteger

 math.mininteger-1=math.maxinteger

 但是如果当他们加的是浮点型数字时,就不会发生回滚,而是取近似值

math.maxinteger+1.0=math.maxinteger

 math.mininteger-1.0=math.mininteger

                                                      OK,第一篇Lua基础系列到此为止啦,谢谢大家~~

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有